import Vue from "vue";
import Router from "vue-router";

Vue.use(Router);

/* Layout */
import Layout from "@/layout";

export const constantRoutes = [
  {
    path: "/login",
    component: () => import("@/views/login/index"),
    hidden: true,
  },

  {
    path: "/404",
    component: () => import("@/views/404"),
    hidden: true,
  },

  {
    path: "/",
    component: Layout,
    redirect: "/firsthome",
    children: [
      {
        path: "firsthome",
        name: "FirstHome",
        component: () => import("@/views/firsthome/index"),
        meta: { title: "首页", icon: "el-icon-s-home" },
      },
    ],
  },

  {
    path: "/",
    component: Layout,
    redirect: "/dashboard",
    children: [
      {
        path: "dashboard",
        name: "Dashboard",
        component: () => import("@/views/dashboard/index"),
        meta: { title: "仪表盘", icon: "dashboard" },
      },
    ],
  },

  {
    path: "/example",
    component: Layout,
    redirect: "/example/table",
    name: "Example",
    meta: { title: "我的文章", icon: "el-icon-s-help" },
    children: [
      {
        path: "table",
        name: "Table",
        component: () => import("@/views/table/index"),
        meta: { title: "文章管理", icon: "table" },
      },
      {
        path: "editor",
        name: "Editor",
        component: () => import("@/views/editor/index"),
        meta: { title: "写文章", icon: "el-icon-edit" },
      },
      {
        path: "category",
        name: "Category",
        component: () => import("@/views/category/index"),
        meta: { title: "分类管理", icon: "el-icon-folder-opened" },
      },
      {
        path: "tag",
        name: "Tag",
        component: () => import("@/views/tag/index"),
        meta: { title: "标签管理", icon: "el-icon-tickets" },
      },
      // {
      //   path: "message",
      //   name: "Message",
      //   component: () => import("@/views/message/index"),
      //   meta: { title: "留言管理", icon: "el-icon-chat-dot-round" },
      // },
      
    ],
  },
  {
    path: "/message",
    component: Layout,
    redirect: "/message/table",
    name: "Message",
    meta: { title: "我的留言", icon: "el-icon-chat-dot-round" },
    children:[
      {
        path: "message",
        name: "Message",
        component: () => import("@/views/message/index"),
        meta: { title: "留言管理", icon: "el-icon-chat-dot-round" },
      },
    ]
  },


  {
    path: '/nested',
    component: Layout,
    redirect: '/nested/menu1',
    name: 'Nested',
    meta: {
      title: 'Nested',
      icon: 'nested'
    },
    children: [
      {
        path: 'menu1',
        component: () => import('@/views/nested/menu1/index'), // Parent router-view
        name: 'Menu1',
        meta: { title: 'Menu1' },
        children: [
          {
            path: 'menu1-1',
            component: () => import('@/views/nested/menu1/menu1-1'),
            name: 'Menu1-1',
            meta: { title: 'Menu1-1' }
          },
          {
            path: 'menu1-2',
            component: () => import('@/views/nested/menu1/menu1-2'),
            name: 'Menu1-2',
            meta: { title: 'Menu1-2' },
            children: [
              {
                path: 'menu1-2-1',
                component: () => import('@/views/nested/menu1/menu1-2/menu1-2-1'),
                name: 'Menu1-2-1',
                meta: { title: 'Menu1-2-1' }
              },
              {
                path: 'menu1-2-2',
                component: () => import('@/views/nested/menu1/menu1-2/menu1-2-2'),
                name: 'Menu1-2-2',
                meta: { title: 'Menu1-2-2' }
              }
            ]
          },
          {
            path: 'menu1-3',
            component: () => import('@/views/nested/menu1/menu1-3'),
            name: 'Menu1-3',
            meta: { title: 'Menu1-3' }
          }
        ]
      },
      {
        path: 'menu2',
        component: () => import('@/views/nested/menu2/index'),
        name: 'Menu2',
        meta: { title: 'menu2' }
      },
      {
        path: 'index',
        name: 'Form',
        component: () => import('@/views/form/index'),
        meta: { title: 'Form', icon: 'form' }
      },
      {
        path: 'tree',
        name: 'Tree',
        component: () => import('@/views/tree/index'),
        meta: { title: 'Tree', icon: 'tree' }
      }

    ]
  },

  {
    path: "external-link",
    component: Layout,
    children: [
      {
        path: "https://www.gitee.com/regan0142/",
        meta: { title: "码云", icon: "link" },
      },
    ],
  },

  // 404 page must be placed at the end !!!
  { path: "*", redirect: "/404", hidden: true },
];

const createRouter = () =>
  new Router({
    // mode: 'history', // require service support
    scrollBehavior: () => ({ y: 0 }),
    routes: constantRoutes,
  });

const router = createRouter();

// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465
export function resetRouter() {
  const newRouter = createRouter();
  router.matcher = newRouter.matcher; // reset router
}

export default router;
